
from rest_framework.generics import ListAPIView,CreateAPIView
from meiduo_admin.serializers.users_serializers import *
from meiduo_admin.paginators import MyPage


class UserView(ListAPIView, CreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserModelSerializer

    # 添加分页器
    pagination_class = MyPage

    def get_queryset(self):
        # 该方法控制了后续序列化操作的查询集
        # 所以，我们重写该方法以实现自定义过滤的动作
        # 问题点：如何在一个非视图函数中，获取请求对象？！
        # 答：通过视图对象获取 --> self.request就是请求对象
        # 1、获取查询字符串参数keyword
        keyword = self.request.query_params.get('keyword')
        # 2、根据username条件字段过滤
        if keyword:
            return self.queryset.filter(username__contains=keyword)
        return self.queryset.all()
